package com.sugon.modules.device.service;


import com.sugon.entity.DevAmTicketItemEntity;
import com.sugon.modules.device.model.vo.DelayCheckParam;
import com.sugon.modules.device.model.vo.DevMaintenanceDelayApplyParam;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author ： YuXD
 * @description： 设备维护工单业务Manager
 * @date ： 2020-11-18 17:00
 * @version: 1.0
 */
public interface IDeviceAmTicketManager {

    /**
     * 维护工单催办
     *
     * @param ticketId 工单ID
     * @param userId   催办人ID
     * @return
     */
    boolean urge(String ticketId, String userId);

    /**
     * 设备维护工单申请变更，变更分为延期申请和变更审批两个类型
     *
     * @param ticketChangeApplyParam
     * @return
     */
    boolean applyChange(DevMaintenanceDelayApplyParam ticketChangeApplyParam);

    /**
     * 审核变更
     *
     * @param delayCheckParam 延期审核参数
     * @return
     */
    boolean checkChange(DelayCheckParam delayCheckParam);

    /**
     * 完成设备维护项
     * 1、修改维护工单维护项状态
     * 2、检测当前维护工单的所有维护项是否已完成
     * 如果都已完成，那么修改维护工单状态
     *
     * @param devMaintenanceTicketItemEntity
     * @return
     */
    boolean completeDevMaintenanceOption(DevAmTicketItemEntity devMaintenanceTicketItemEntity);

    /**
     * 修正设备自主维护工单项现场照片
     *
     * @param amTicketItem   自主维护工单项
     * @param liveImageArray 最新的现场照片
     * @return
     */
    boolean modifyLiveImage(DevAmTicketItemEntity amTicketItem, MultipartFile[] liveImageArray);

}
